package com.xinlin.code;

import com.xinlin.code.generate.CodeGenerate;
import com.xinlin.code.generate.config.DataSourceConfig;
import com.xinlin.code.generate.config.GlobalConfig;

/**
 * 代码生成test
 * 
 * @author P0081447 todo 开发完成还没有测试
 */
public class Run {

	public static void main(String[] args) {
		generate();
	}

	// 生成代码方法
	public static void generate() {
		// 包
		String packageName = "com.spa.modules.system.";
		// vue包
	    String vuePackageName = "src.views.";
		// 全局配置
		GlobalConfig globalConfig = new GlobalConfig();
		// 包名
		globalConfig.setPackages("sys");
		// 自定义模板路径
		globalConfig.setTemplatepath("/template/spa");
		globalConfig.setAuthor("P0081447");
		// 实体包名
		globalConfig.setEntityPackage(packageName + "entity");
		// mapper包名
		globalConfig.setMapperPackage(packageName + "mapper");
		// mapper的xml路径
		globalConfig.setMapperXmlPath(packageName + "xml");
		// service包名
		globalConfig.setServicePackage(packageName + "service");
		globalConfig.setServiceImplPackage(packageName + "service.impl");
		globalConfig.setControllerPackage(packageName + "controller");
		
		globalConfig.setVueListPath(vuePackageName + "system");

		// 需要生成的实体
		globalConfig.setTableNames(new String[] { "gen_table" });
		
		globalConfig.setTableComment(new String[] { "系统日志" });
		// 生成的实体移除前缀
//        globalConfig.setPrefix(new String[]{"churn_"});
		// 文件输出路径，不配置的话默认输出当前项目的resources/code目录下
		globalConfig.setOutputDir("E://code-generate");
//		globalConfig.setOutputDir("/Volumes/新加卷/code-generate")
		// 数据库配置
		DataSourceConfig dsc = new DataSourceConfig();
		dsc.setDriverName("com.mysql.cj.jdbc.Driver");
		dsc.setUrl("jdbc:mysql://127.0.0.1:3306/spa?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai");// 填写自己的数据库账号
		dsc.setUsername("root");
		dsc.setPassword("123456");
		CodeGenerate codeGenerate = new CodeGenerate(globalConfig, dsc);
		// 生成代码
		codeGenerate.generateToFile();
		dsc.closeConnection();
	}
}
